home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / machserver / 1.098 / Include / ds3100.md / vmMach.h < prev    next >
C/C++ Source or Header  |  1990-09-11  |  2KB  |  77 lines

  1. /*
  2.  * vmMach.h
  3.  *
  4.  *         Machine dependent virtual memory data structures and procedure
  5.  *    headers.
  6.  *
  7.  * Copyright (C) 1989 Digital Equipment Corporation.
  8.  * Permission to use, copy, modify, and distribute this software and
  9.  * its documentation for any purpose and without fee is hereby granted,
  10.  * provided that the above copyright notice appears in all copies.
  11.  * Digital Equipment Corporation makes no representations about the
  12.  * suitability of this software for any purpose.  It is provided "as is"
  13.  * without express or implied warranty.
  14.  *
  15.  * $Header: /sprite/src/kernel/vm/ds3100.md/RCS/vmMach.h,v 9.8 90/09/11 14:10:01 mendel Exp $ SPRITE (DECWRL)
  16.  */
  17.  
  18. #ifndef _VMMACH
  19. #define _VMMACH
  20.  
  21. /*
  22.  * Machine dependent data for each software segment.
  23.  */
  24. typedef struct VmMach_SegData {
  25.     int    dummy;
  26. } VmMach_SegData;
  27.  
  28. /*
  29.  * Machine dependent shared memory data
  30.  */
  31. typedef struct VmMach_SharedData {
  32.     int        *allocVector;           /* Allocated block vector. */
  33.     int         allocFirstFree;         /* First free block. */
  34. } VmMach_SharedData;
  35.  
  36. /*
  37.  * Machine dependent data for each process.
  38.  */
  39. typedef struct VmMach_ProcData {
  40.     struct Vm_Segment    *mapSegPtr;    /* Pointer to segment which is mapped
  41.                      * into this processes address
  42.                      * space. */
  43.     unsigned int    mappedPage;    /* Page in the mapped seg where
  44.                      * the mapping begins. */
  45.     int            pid;        /* Which pid is used to map this
  46.                      * process. */
  47.     unsigned int    modPage;    /* A TLB modified fault occured on this
  48.                      * virtual page - set the modify bit
  49.                      * in the TLB entry if we try to
  50.                      * validate this VA. */
  51.     Address        sharedPtr;    /* Shared memory pointer, in case
  52.                      * shared memory is mapped.
  53.                      * This is really Vm_SegProcList*, 
  54.                      * but made address because of
  55.                      * header file problems.*/
  56.     VmMach_SharedData    sharedData;    /* Data for shared memory. */
  57. } VmMach_ProcData;
  58.  
  59. /*
  60.  * TLB Map.
  61.  */
  62. extern unsigned *vmMach_KernelTLBMap;
  63.  
  64. /*
  65.  * Machine dependent functions exported to machine dependent modules.
  66.  */
  67.  
  68. extern Boolean VmMach_MakeDebugAccessible _ARGS_((unsigned addr));
  69. extern ENTRY ReturnStatus VmMach_TLBFault _ARGS_((Address virtAddr));
  70. extern ReturnStatus VmMach_TLBModFault _ARGS_((Address virtAddr));
  71. extern Address VmMach_UserMap _ARGS_((int numBytes, Address physAddr,
  72.     Boolean firstTime));
  73. extern ENTRY void VmMach_UserUnmap _ARGS_((void));
  74. extern int VmMachCopyEnd _ARGS_((void));
  75.  
  76. #endif _VMMACH
  77.